Programmable logic controllers can be supplied with some means of producing pulsed outputs on their discrete output points that can be used for controlling the motion of stepper motors, pulse input controlled servo-motor controllers, and/or for other equipment that is controlled by an input pulse frequency, pulse width, and/or number of pulses.
A desired motion profile can be described in terms of desired pulse frequency versus time. Such profiles can be used in industry to describe, for example, the speed of a motor positioning a tool, where the frequency of pulses delivered to the motor system controls the rotational speed. Typical motor systems used in industry today have scaling factors of from 200 to 200000 pulses per revolution. Typical acceleration times from minimum to maximum frequency can range from a few milliseconds up to many seconds. The actual object of the motion is often to move a specific distance, expressed as a specific number of pulses, while satisfying constraints on acceleration, and change in acceleration. The constraints on acceleration and change in acceleration can have any of numerous motivations, including controlling motor torque load, limiting wear on drive trains, avoiding damage to tools, work pieces, and/or handled materials, and/or limiting acoustic noise, etc. Controlled changes in acceleration might or might not be included in a particular application, but are increasingly valued as users strive for higher speed movement without introducing disruptive jerks.